• File: ajax_get_timelog.php
  • Full Path: C:/htdocs/reeft_gps_test/ajax_get_timelog.php
  • Date Modified: 04/09/2025 9:21 AM
  • File size: 8.39 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
//======================================================================================
//
// Function: Get Timelog list from TEO
//
// Programmer: AR
// Date      : 2025-03-26
//
// Copyright Reeft A/S (c) - 2025
//======================================================================================

//======================================================================================	
// Set session
//======================================================================================			
if(!isset($_SESSION))
{ 
	session_start();
}

//======================================================================================
// Language data  ["en", "de", "da", "no", "sv"]
//======================================================================================
$loginLanguage = $_SESSION['loginLanguage'];
include "language/$loginLanguage.php";

//======================================================================================
// General 
//======================================================================================
include "include/apikey.php";
include "rft_apicall.php";
include "REEFT_date_convert/config_about_date.php";
include "REEFT_date_convert/REEFT_date_convert.php";
$returnResult = [];
$returnResult["error"] = "";

//======================================================================================
// Get input
//======================================================================================
if (isset($_SESSION["receivedToken"]))	{
	$receivedToken = $_SESSION["receivedToken"];
} else {
	$returnResult["error"]	= "receivedToken missing";
	echo json_encode($returnResult);
	exit;
}
if (isset($_SESSION["ConsiderOrganizationHeader"]))	{
	$ConsiderOrganizationHeader = $_SESSION["ConsiderOrganizationHeader"];
} else {
	$ConsiderOrganizationHeader	= "";
}
if (isset($_SESSION["UseSharedDb"]))	{
	$UseSharedDb = $_SESSION["UseSharedDb"];
} else {
	$UseSharedDb = "";
}
if (isset($_SESSION["TargetOrganization"]))	{
	$TargetOrganization = $_SESSION["TargetOrganization"];
} else {
	$TargetOrganization	= "";
}

if (isset($_REQUEST["userId"]))	{
	$userId = $_REQUEST["userId"];
} else {
	$userId	= "";
}

if (isset($_REQUEST["startDate"]))	{
	$startDate = $_REQUEST["startDate"];
} else {
	$startDate = "";
}

if (isset($_REQUEST["endDate"]))	{
	$endDate = $_REQUEST["endDate"];
} else {
	$endDate = "";
}

$startDateUTC = REEFT_local_to_utc($startDate);
$endDateUTC = REEFT_local_to_utc($endDate);

$headers = [
		'accept: text/plain',
		'ConsiderOrganizationHeader: ' . $ConsiderOrganizationHeader,
		'UseSharedDb: ' . $UseSharedDb,
		'TargetOrganization: ' . $TargetOrganization,
	];


$url = $rftUrl . '/TimeLog?UserId='.$userId.'&From='.urlencode($startDateUTC).'&To='.urlencode($endDateUTC).'&Statuses=0&Statuses=1&Statuses=2&Statuses=3';

$response = makeApiCall($url, $headers);

if (isset($response['error'])) {
    $returnResult["error"]	= $response['error'];
} else if (isset($response['data']) && is_array($response['data'])) {
	// Create new data node
	$i = 0;
	foreach ($response['data'] as $dayArr) {	
		foreach ($dayArr as $key => $item) {
			
			$tmpArr = array();
			$tmpArr["id"]						= $item["id"];
			$tmpArr["status"]					= $item["status"];
			$tmpArr["statusName"]				= $locale_text["TIMESHEET_STATUS"][$item["status"]];
			$tmpArr["caseTypeName"]				= $item["caseTypeName"];
			$tmpArr["salaryTypeName"]			= $item["salaryTypeName"];
			$tmpArr["jobName"]					= $item["jobName"];
			$tmpArr["jobNumber"]				= $item["jobNumber"];
			$tmpArr["jobStatus"]				= $item["jobStatus"];
			$tmpArr["jobStatusName"]			= $locale_text["JOB_STATUS"][$item["jobStatus"]];
			$tmpArr["customerId"]				= $item["customerId"];
			$tmpArr["customerName"]				= $item["customerName"];
			$tmpArr["customerCode"]				= $item["customerCode"];
			$tmpArr["serviceUnitId"]			= $item["serviceUnitId"];
			$tmpArr["serviceUnitName"]			= $item["serviceUnitName"];
			$tmpArr["serviceUnitCode"]			= $item["serviceUnitCode"];
			$tmpArr["serviceUnitSerialNumber"]	= @$item["serviceUnitSerialNumber"];
			$tmpArr["activityTypeName"]			= $item["activityTypeName"];
			$tmpArr["addressName"]				= @$item["addressName"];
			$tmpArr["location"]					= @$item["location"];
			$tmpArr["street"]					= @$item["street"];
			$tmpArr["region"]					= @$item["region"];
			$tmpArr["zipCode"]					= @$item["zipCode"];
			$tmpArr["city"]						= @$item["city"];
			$tmpArr["country"]					= @$item["country"];
			$tmpArr["startLatitude"]			= @$item["startLatitude"];
			$tmpArr["startLongitude"]			= @$item["startLongitude"];
			$tmpArr["endLatitude"]				= @$item["endLatitude"];
			$tmpArr["endLongitude"]				= @$item["endLongitude"];
			$tmpArr["dayApproved"]				= $item["dayApproved"];
			$tmpArr["unit"]						= @$item["unit"];
			$tmpArr["noteBy"]					= @$item["noteBy"];
			$tmpArr["noteByUser"]				= @$item["noteByUser"];
			$tmpArr["noteDateTime"]				= @$item["noteDateTime"];
			$tmpArr["loggedStartTime"]			= @$item["loggedStartTime"];
			$tmpArr["loggedEndTime"]			= @$item["loggedEndTime"];
			$tmpArr["manualStartTime"]			= @$item["manualStartTime"];
			$tmpArr["manualEndTime"]			= @$item["manualEndTime"];
			$tmpArr["trackedStartTime"]			= @$item["trackedStartTime"];
			$tmpArr["trackedEndTime"]			= @$item["trackedEndTime"];
			$tmpArr["description"]				= @$item["description"];
			$tmpArr["salaryTypeId"]				= $item["salaryTypeId"];
			$tmpArr["jobId"]					= $item["jobId"];
			$tmpArr["date"]						= $item["date"];
			$tmpArr["unitValue"]				= @$item["unitValue"];
			
			$sortDate = "";
			$sorttype = "";
			
			// Manual time is the king, logged comes before tracked, if unit we just uses date to sort 
			if ($tmpArr["manualStartTime"] != null && strtoupper($tmpArr["manualStartTime"]) != 'NULL' && trim($tmpArr["manualStartTime"]) != "") { 
				$tmpArr["manualStartTimeLocal"] = REEFT_utc_to_local($tmpArr["manualStartTime"]);
				$sortDate = $tmpArr["manualStartTime"];
				$sorttype = "manual";
			} else {
				$tmpArr["manualStartTimeLocal"] = $tmpArr["manualStartTime"];
			}				
			if ($tmpArr["manualEndTime"] != null && strtoupper($tmpArr["manualEndTime"]) != 'NULL' && trim($tmpArr["manualEndTime"]) != "") { 
				$tmpArr["manualEndTimeLocal"] = REEFT_utc_to_local($tmpArr["manualEndTime"]);
			} else {
				$tmpArr["manualEndTimeLocal"] = $tmpArr["manualEndTime"];
			}
							
			if ($tmpArr["loggedStartTime"] != null && strtoupper($tmpArr["loggedStartTime"]) != 'NULL' && trim($tmpArr["loggedStartTime"]) != "") { 
				$tmpArr["loggedStartTimeLocal"] = REEFT_utc_to_local($tmpArr["loggedStartTime"]);
				if ($sortDate == "") {
					$sortDate = $tmpArr["loggedStartTime"];
					$sorttype = "logged";
				}
			} else {
				$tmpArr["loggedStartTimeLocal"] = $tmpArr["loggedStartTime"];
			}				
			if ($tmpArr["loggedEndTime"] != null && strtoupper($tmpArr["loggedEndTime"]) != 'NULL' && trim($tmpArr["loggedEndTime"]) != "") { 
				$tmpArr["loggedEndTimeLocal"] = REEFT_utc_to_local($tmpArr["loggedEndTime"]);
			} else {
				$tmpArr["loggedEndTimeLocal"] = $tmpArr["loggedEndTime"];
			}				
							
			if ($tmpArr["trackedStartTime"] != null && strtoupper($tmpArr["trackedStartTime"]) != 'NULL' && trim($tmpArr["trackedStartTime"]) != "") { 
				$tmpArr["trackedStartTimeLocal"] = REEFT_utc_to_local($tmpArr["trackedStartTime"]);
				if ($sortDate == "") {
					$sortDate = $tmpArr["trackedStartTime"];
					$sorttype = "tracked";
				}
			} else {
				$tmpArr["trackedStartTimeLocal"] = $tmpArr["trackedStartTime"];
			}				
			if ($tmpArr["trackedEndTime"] != null && strtoupper($tmpArr["trackedEndTime"]) != 'NULL' && trim($tmpArr["trackedEndTime"]) != "") { 
				$tmpArr["trackedEndTimeLocal"] = REEFT_utc_to_local($tmpArr["trackedEndTime"]);
			} else {
				$tmpArr["trackedEndTimeLocal"] = $tmpArr["trackedEndTime"];
			}	
			
			if ($tmpArr["noteDateTime"] != null && strtoupper($tmpArr["noteDateTime"]) != 'NULL' && trim($tmpArr["noteDateTime"]) != "") { 
				$tmpArr["noteDateTimeLocal"] = REEFT_utc_to_local($tmpArr["noteDateTime"]);
			} else {
				$tmpArr["noteDateTimeLocal"] = $tmpArr["noteDateTime"];
			}
			
			if ($sortDate == "") {
				$sortDate = $tmpArr["date"]."_".$key ;
				$sorttype = "unit";
			}
			
			$tmpArr["sorttype"] = $sorttype;
				
			$i++;
			$returnResult[$sortDate] = $tmpArr;
		}
	}
}	

ksort($returnResult); //sort by date asc

echo json_encode($returnResult);